﻿using MediatR;
using ProduceBasicData.Domain.WarehouseManage.WarehouseEnum;
using ProduceBasicData.ErrorCode;

namespace ProduceBasicData.Api.Application.Command.WarehouseManage
{
    /// <summary>
    /// 更新仓库命令
    /// </summary>
    public class UpdateWarehouseCommand : IRequest<ApiResult<int>>
    {
        /// <summary>
        /// 主键id
        /// </summary>
        public int Id { get; set; }

        /// <summary>
        /// 仓库编号
        /// </summary>
        public string? Code { get; set; }

        /// <summary>
        /// 仓库名称
        /// </summary>
        public string? Name { get; set; }

        /// <summary>
        /// 仓库类型
        /// </summary>
        public WarehouseType Type { get; set; }

        /// <summary>
        /// 仓库状态
        /// </summary>
        public WarehouseStatus Status { get; set; } = WarehouseStatus.Active;

        /// <summary>
        /// 仓库地址
        /// </summary>
        public string? Address { get; set; }

        /// <summary>
        /// 仓库管理员ID
        /// </summary>
        public long? ManagerId { get; set; }

        /// <summary>
        /// 仓库管理员姓名
        /// </summary>
        public string? ManagerName { get; set; }

        /// <summary>
        /// 联系电话
        /// </summary>
        public string? ContactPhone { get; set; }

        /// <summary>
        /// 仓库面积(平方米)
        /// </summary>
        public decimal? Area { get; set; }

        /// <summary>
        /// 仓库容量
        /// </summary>
        public decimal? Capacity { get; set; }

        /// <summary>
        /// 备注信息
        /// </summary>
        public string? Remark { get; set; }

        /// <summary>
        /// 修改人
        /// </summary>
        public string? UpdateName { get; set; }

        /// <summary>
        /// 修改时间
        /// </summary>
        public DateTime? UpdateTime { get; set; }
    }
}
